<?php


include("PersonaAfectada.php");
include("ZonaEmergencia.php");
//include("CentroApoyo.php");
include("Lista.php");

class FachadaI{

    // Para implementar el patron singleton.
    private static $instancia;//$instance


    // Metodo que permite obtener la unica instancia de la clase.
    public static function getInstancia() { // getInstance()

        //si no existe instancia de la clase se crea
        // si existe se retorna la instancia existente.
        if( self::$instancia == null ) {
            self::$instancia = new self();
        }

        return self::$instancia;
    }

    // Privado se previene la creacion via new.
    private function __construct() {

    }

    // Para evitar la clonacion de este objeto.
    private function __clone() {
        throw new Exception('No se puede clonar');
    }

                //Funciones referentes a las zonas en emergencia.

    //Funcion para Insertar una zona en emergencia.
    function crearZonaEmergencia($id,$tipo,$fecha,$coordenadas){

      //Se crea la una instancia de ZonaEmergencia con los datos ingresados
      $zona = new ZonaEmergencia($id,$tipo, $fecha,$coordenadas);

      //Se llama a la funcion insertar en la capa logica
      $zona->Insertar();

    }

    //Funcion para Consultar las zona en emergencia dada una fecha.
    function consultarZonaEmergencia() {

    }

    //Funcion para Eliminar una zona en emergencia dado su id
    function EliminarZonaEmergencia($id) {

        //Se crea la una instancia de ZonaEmergencia con el id ingresado
        $zona = new ZonaEmergencia($id,NULL,NULL, NULL);
        //Se llama a la funcion eliminar en la capa logica
        $zona->Eliminar();
    }

    
                //Funciones referentes al centro de apoyo.
    //Insertar Centro de Apoyo
    function crearCentroApoyo($Nombre, $Ubicacion, $coordenadas, $capacidad, $ubicacion, $tipo,$desastre) {

          //Se crea la una instancia de ZonaEmergencia con los datos ingresados
      $centro = new CentroApoyo($Nombre, $Ubicacion, $coordenadas, $capacidad, $ubicacion, $tipo,$desastre);

      //Se llama a la funcion insertar en la capa logica
      $centro->Insertar();

    }

    function consultarCentroApoyo() {

    }

    function eliminarCentroApoyo() {

    }

    //Funciones referentes
    function crearPersonaAfectada($id, $descripcion, $nombre, $ubicado, $ci,
            $familiares, $telefonoFamiliares, $foto,
            $fechaDesaparicion) {

        // Crea un objeto persona afectada.
        $persona = new PersonaAfectada($id, $descripcion, $nombre, $ubicado,
                $ci, $familiares, $telefonoFamiliares,
                $foto, $fechaDesaparicion);

        // Inserta la persona afectada.
        $persona->insertarPersonaAfectada();
    }

    // Obtiene una lista de personas afectadas de la base de datos.
    function consultarPersonaAfectada() {

        $listaPersonas = new lista(); // Crea una lista.
        $listaPersonas->consultarPersonaAfectada(); 

        // Si esta llena.
        if ($listaPersonas->cantidad() != 0) {

            // muestra los elementos de la lista.
            //$this->mostrarPersonaAfectada($listaPersonas);
        }

        // Si no esta llena.
        /*else{

            print "<p align='center'>No se encontraron resultados</p>";
        }*/

        return $listaPersonas;
    }

    function eliminarPersonaAfectada() {

    }
}


?>
